package com.twetec.cms.adapter.pc.backend.controller.website;

import com.twetec.cms.adapter.pc.backend.response.R;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;

//@Api(tags = "文件上传demo")
@RestController
//@RequestMapping("/website/file")
public class UploadController {

    private static final String UPLOAD_PATH = System.getProperty("user.dir");

//    @ApiOperation(value = "文件上传", notes = "文件上传")
//    @PostMapping("/upload")
    public R upload(@ApiParam(value = "上传的文件", required = true, example = "**.jpg") @RequestParam(required = false) MultipartFile siteLoge) {

        if (siteLoge.isEmpty()) return R.failureRequestParam().msg("请选择你要提交的文件");

        // 文件名，可以进行文件名长度的限制
        String originalFilename = siteLoge.getOriginalFilename();
        // 文件类型名,可以进行文件类型筛选
        String suffixName = originalFilename.substring(originalFilename.lastIndexOf("."));
        InputStream inputStream = null;
        File destnationFile = null;
        try {
            // 获取输入流
            inputStream = siteLoge.getInputStream();
            // 文件存放路径
            String filePath = UPLOAD_PATH + "\\" + originalFilename;
            System.out.println("++++++++++++++++++++++++++++++++++++++++++++");
            System.out.println(filePath);
            // 创建一个文件
            destnationFile = new File(filePath);
            // 如果文件不存在就创建
            if (!destnationFile.getParentFile().exists()) {
                destnationFile.getParentFile().mkdirs();
            }
            // 文件写入
            siteLoge.transferTo(destnationFile);

            return R.success().msg("上传图片成功");
        } catch (IOException ioE) {
            ioE.printStackTrace();
        } finally {
            // 关闭文件流
            if (null != inputStream) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return R.failure().msg("上传图片失败");
    }

//    @ApiOperation(value = "上传轮播图图片", notes = "上传轮播图图片")
//    @PostMapping("/upload-picture")
//    public R uploadPicture(
//            @ApiParam(value = "file", required = true, example = "1") @RequestParam(required = false) MultipartFile file) {
//
//        if(null == file){
//            return R.failureRequestParam().msg("文件参数为空");
//        }
//        // 使用扩展名校验
//        if(!ValidateUtil.isPicture(file.getOriginalFilename())){
//            return R.failureRequestParam().msg("该文件不是图片");
//        }
//        // 限制大小
//        if(file.getSize() > FileConst.UPLOAD_BANNER_PICTURE_SIZE){
//            return R.failureRequestParam().msg("图片大小不能超过"+ FileConst.UPLOAD_COURSE_PICTURE_SIZE+"M");
//        }
//        FileFileListVO fileFileListVO = null;
//        // 获取用户id
//        Long userId = userService.getUserId(request);
//        UserVO userVO = userService.getById(userId);
//        FileInputStream fileInputStream = null;
//        try {
//            // 获取输入流
//            fileInputStream = (FileInputStream) file.getInputStream();
//            // 转换为字节数组（根据输入流和文件按大小）
//            byte[] fileBytes = FileUtils.getContent(fileInputStream, file.getSize());
//            fileFileListVO = fileManageService.UploadFile(fileBytes, userVO.getName(), userId, file.getOriginalFilename(), file.getSize());
//            if(null == fileFileListVO){
//                return R.failure();
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//            return R.failure();
//        }finally {
//            try{
//                if (null != fileInputStream){
//                    fileInputStream.close();
//                    fileInputStream = null;
//                }
//            }catch (Exception eq){
//                eq.printStackTrace();
//            }
//        }
//        if (null == fileFileListVO){
//            return R.failure();
//        }
//        return R.success().data(fileFileListVO);
//    }
}
